<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>all</title>
</head>
<body>
<script>
    // const hdcms = new Promise((resolve,reject) => {
    //     setTimeout(() => {
    //         resolve("第一个promise");
    //     },2000);
    // });
    //
    // const houdunren = new Promise((resolve,reject) => {
    //     setTimeout(() => {
    //         resolve("第二个异步");
    //     },2000);
    // });
    //
    // const hd = Promise.all([hdcms,houdunren])
    // .then(results => {
    //     console.log(results)
    // })
    // .catch(msg => {
    //     console.log(msg);
    // })
    // ;


    function ajax(url) {
        return new Promise((resolve,reject) => {
            let xhr = new XMLHttpRequest();
            xhr.open('GET',url);
            xhr.send();
            xhr.onload = function () {
                if(this.status == 200){
                    resolve(JSON.parse(this.response));
                }else{
                    reject(this);
                }
            }
        });
    }

    // const api = "http://localhost/basicjs/promise/php";
    // const promises = ["向军","后盾人"].map(name => {
    //     return ajax(`${api}/user.php?name=${name}`);
    // });
    //
    // Promise.all(promises)
    // .then(response => {
    //     console.log(response);
    // })
    // .catch(error => {
    //     console.log(error);
    // })
    // ;

    //可以将其他的非promise数据添加到all中，他将会被处理成Promise.resolve
    // const api = "http://localhost/basicjs/promise/php";
    // const promises = [
    //     ajax(`${api}/user.php?name=向军`),
    //     ajax(`${api}/user.php?name=后盾人`),
    //     {id:3,name:"hdcmcs",email:"admin@hdcms.com"}
    // ];
    // Promise.all(promises)
    // .then(response => {
    //     console.log(response)
    // }).catch(error => {
    //     console.log(error)
    // })
    // ;

    //如果某一个promise没有catch处理，将使用Promise.all的catch处理
    // let p1 = new Promise((resolve,reject) => {
    //     resolve("fuillled");
    // });
    //
    // let p2 = new Promise((resolve,reject) => {
    //     reject("rejected");
    // });
    //
    // Promise.all([p1,p2]).catch(reason => {
    //     console.log(reason)
    // });



</script>
</body>
</html>
